

if __name__ == '__main__':
    config = {}

    # 方法1：直接赋值（最常用）
    config['timeout'] = 30  # 添加新键值对
    config['retries'] = 3  # 继续添加

    # 方法2：update()批量添加（适合合并字典）
    default_config = {'debug': False, 'log_level': 'INFO'}
    config.update(default_config)
    print(config)
    # 结果：{'timeout': 30, 'retries': 3, 'debug': False, 'log_level': 'INFO'}

    # 方法3：setdefault()（安全添加，避免覆盖）
    config.setdefault('timeout', 60)  # 已存在则不修改
    config.setdefault('max_connections', 10)  # 新键则添加


    # 方法4：collections.defaultdict（带默认值的字典）
    from collections import defaultdict

    word_count = defaultdict(int)  # 默认值0
    word_count['python'] += 1  # 自动初始化
    print(word_count.get('python')) # 1

    # 创建示例字典
    user = {'id': 1, 'name': 'Alice', 'email': 'alice@example.com'}

    # 方法1：del语句（直接删除）
    del user['email']  # 删除email键
    # 风险：如果键不存在会引发KeyError
    print(user)
    # 方法2：pop()（安全删除并返回值）
    name = user.pop('name')  # 返回'Alice'并删除
    not_found = user.pop('age', None)  # 键不存在时返回默认值
    print(not_found)
    # 方法3：clear()（清空字典）
    user.clear()  # 变为空字典{}
    print(user)

    data = {'a': 1, 'b': 2, 'secret': 3, 'c': 4}
    filtered = {k: v for k, v in data.items() if not k.startswith('s')}
    print(filtered)
    # 结果：{'a': 1, 'b': 2, 'c': 4}

    # 方法5：popitem()（LIFO顺序删除，Python 3.7+保证有序）
    last_item = filtered.popitem()  # 返回最后插入的键值对
    print(last_item)  # 输出：('c', 4)

    inventory = {'apple': 30, 'banana': 15, 'orange': 20}

    # 获取所有键值对（返回视图对象）
    items_view = inventory.items()
    print(items_view)
    # dict_items([('apple', 30), ('banana', 15), ('orange', 20)])

    # 获取所有键
    keys_view = inventory.keys()
    print(keys_view)
    # dict_keys(['apple', 'banana', 'orange'])

    # 获取所有值
    values_view = inventory.values()
    print(values_view)
    # dict_values([30, 15, 20])

    # 特性1：动态更新
    inventory['pear'] = 10
    print(list(items_view))  # 立即反映新增项

    # 特性2：可迭代但非列表
    for fruit, count in items_view:  # 内存高效
        print(f"{fruit}: {count}")

    # 特性3：支持集合操作
    common_keys = keys_view & {'apple', 'pear'}  # 交集
    print(common_keys)
    # 结果：{'pear', 'apple'}